package demo05.Lambda;

import java.util.Arrays;
import java.util.Comparator;

/*需求:
使用数组存储多个Person对象
对数组中的Person对象使用Arrays的sort方法通过年龄进行升序排序*/
public class Demo01Arrays {
    public static void main(String[] args) {
 /*       //传统方法

        Person[] array = {new Person("张三", 18), new Person("李四", 19), new Person("王五", 17)};
        //定义排序方法
        Comparator<Person> comparator = new Comparator<>() {
            @Override
            public int compare(Person o1, Person o2) {
                return o1.getAge() - o2.getAge();
            }
        };
        // 第二个参数为排序规则，即Comparator接口实例
        Arrays.sort(array, comparator);
        for (Person person : array) {
            System.out.println(person);
        }*/

        //lambda写法
        Person[] array = {new Person("张三", 18),
                new Person("李四", 19),
                new Person("王五", 17)};
        Arrays.sort(array, (Person o1, Person o2) -> {
            return o1.getAge() - o2.getAge();
        });
        //简化的lambda表达式
//        Arrays.sort(array, (o1, o2) -> o1.getAge() - o2.getAge());
        for (Person person : array) {
            System.out.println(person);
        }

    }
}
